5.12. ООП
ООП
Groovy полностью объектно-ориентирован, всё является объектом.
Классы и объекты:
class Person {
String name
int age
void sayHello() {
println "Hello, my name is $name"
}
}
def p = new Person(name: "Alice", age: 30)
p.sayHello()
Наследование:
class Student extends Person {
String school
}
Инкапсуляция:
По умолчанию все поля имеют геттеры и сеттеры (автоматически создаются).
Полиморфизм:
Поддерживается через переопределение методов.
Замыкания (Closures):
Замыкания — это анонимные блоки кода, которые могут быть переданы как параметры.
def greet = { name -> println "Hello, $name" }
greet("Groovy")